# 装饰器
import time


# 装饰器,记录函数运行时间
def decorator01(fun):
    def wapper(*args, **kwargs): # 使用非固定参数,无论参数是什么,都可以传递进来
        stime = time.time()
        fun(*args, **kwargs)
        etime = time.time()
        print("fun run time is {TIME}".format(TIME=etime - stime))
    return wapper  # 必须要返回一个函数的内存地址


# test01() = wapper(), 所以装饰器加参数是给嵌套函数加参数
@decorator01
def test01(args1):
    time.sleep(2)
    print("参数是 {NAME} ".format(NAME=args1))


test01("侯征")  # 不修改代码和调用方式,实现添加记录时间功能
